Page({
  data: {
    houseList: [],
    dialogVisible: false,
  },

  onShow() {
    this.getHouse()
  },

  // 获取我的房屋列表
  async getHouse() {
    const { code, data: houseList } = await wx.http.get('/room')
    if (code !== 10000) return wx.utils.toast('查询房屋失败')
    this.setData({
      houseList,
      isEmpty: houseList.length === 0,
    })
  },

  // swipe-cell组件的close事件处理函数
  // 关闭侧滑组件时执行
  swipeClose(ev) {
    const { position, instance } = ev.detail
    // 判断点击的位置 是不是右侧侧滑
    if (position === 'right') {
      // 显示 Dialog 对话框
      this.setData({
        dialogVisible: true,
      })
      console.log(ev)
      // 把当前点击删除的房屋项ID 和索引存储起来
      // 存 id是为了调后台的删除接口
      // 存 索引是为 删除页面的数据
      this.cellId = ev.mark.id
      this.cellIndex = ev.mark.index
      // swiper-cell 滑块关闭
      instance.close()
    }
  },
  // dialog组件关闭时执行的事件处理函数
  dialogClose(e) {
    // console.log(e)
    if (e.detail === 'confirm') {
      this.delHouse()
    }
  },
  // 删除逻辑
  async delHouse() {
    // 调后台删除接口
    // 判断有没有存房屋项的ID
    if (!this.cellId) return wx.utils.toast('参数有误,请稍后重试')
    const { code, message } = await wx.http.delete(`/room/${this.cellId}`)
    if (code !== 10000) return wx.utils.toast(message)
    // 修改页面数据
    this.data.houseList.splice(this.cellIndex, 1)
    // 响应式修改数据
    this.setData({
      houseList: this.data.houseList,
      isEmpty: this.data.houseList.length === 0,
    })
    wx.utils.toast(message)
  },
  goDetail(e) {
    // console.log(e.mark.id)
    wx.navigateTo({
      url: '/house_pkg/pages/detail/index?id=' + e.mark.id,
    })
  },

  addHouse() {
    wx.navigateTo({
      url: '/house_pkg/pages/locate/index',
    })
  },
})
